#ifndef __ATOMTRACE_POINTLIGHT_H_
#define __ATOMTRACE_POINTLIGHT_H_

#include "Vector3.h"
#include "Color.h"
#include "Ray.h"

namespace AtomTrace{

    class PointLight
    {
    public:
        Vector3 pos;
        Color intensity;

        PointLight();
        PointLight(int i_addr);
        
        inline const Color & GetIntensity() const;

        const PointLight & LoadFromGM(int i_addr);

        PointLight & operator=(const PointLight & other);

        const Vector3 GetDirection(const Vector3 & objPos) const;

        Ray RandomPhoton() const;
    };

    //******* Inline function ************
    const Color & PointLight::GetIntensity() const
    { return intensity; }

} // namespace AtomTrace

#endif //__ATOMTRACE_POINTLIGHT_H_
